#ifndef EGRAPHICSOBJECTMANAGER_H
#define EGRAPHICSOBJECTMANAGER_H

#include "../Engine_global.h"

class ETextureManager;
class EGraphicsObject;

class ENGINESHARED_EXPORT EGraphicsObjectManager
{
    typedef std::map<std::string, boost::shared_ptr<EGraphicsObject> > GraphicsObjects;
public:
    EGraphicsObjectManager(boost::shared_ptr<ETextureManager> textureManager);

    boost::shared_ptr<ETextureManager> textureManager() const;

    boost::shared_ptr<EGraphicsObject> loadFromTexture(const std::string& name, const std::string& texPath);

    boost::shared_ptr<EGraphicsObject> create(const std::string& name);
private:
    boost::weak_ptr<ETextureManager> m_textureManager;
    GraphicsObjects m_objects;

};

#endif // EGRAPHICSOBJECTMANAGER_H
